library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.4 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.2      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(spData)
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(sf)
## Linking to GEOS 3.9.1, GDAL 3.4.3, PROJ 7.2.1; sf_use_s2() is TRUE
library(mapview)
## Warning: package 'mapview' was built under R version 4.2.2
library(foreach)
## Warning: package 'foreach' was built under R version 4.2.2
## 
## Attaching package: 'foreach'
## 
## The following objects are masked from 'package:purrr':
## 
##     accumulate, when
library(doParallel)
## Warning: package 'doParallel' was built under R version 4.2.2
## Loading required package: iterators
## Warning: package 'iterators' was built under R version 4.2.2
## Loading required package: parallel
registerDoParallel(4)
getDoParWorkers()
## [1] 4
library(tidycensus)
## Warning: package 'tidycensus' was built under R version 4.2.2
census_api_key("14e390f2c960887e1a905d2d6d768190f715a3d5")
## To install your API key for use in future sessions, run this function with `install = TRUE`.
library(tidycensus)
racevars <- c(White = "P005003", 
              Black = "P005004", 
              Asian = "P005006", 
              Hispanic = "P004003")

options(tigris_use_cache = TRUE)
erie <- get_decennial(geography = "block", variables = racevars, 
                  state = "NY", county = "Erie County", geometry = TRUE,
                  summary_var = "P001001", cache_table=T) 
## Getting data from the 2010 decennial Census
## Using Census Summary File 1
cropped_data <- st_crop (erie, xmin=-78.9,xmax=-78.85,ymin=42.888,ymax=42.92)                  
## Warning: attribute variables are assumed to be spatially constant throughout all
## geometries
race = unique(cropped_data$variable)

foreach(race, i=1:4, .combine = "rbind") %do%
  race[i]
##          [,1]      
## result.1 "White"   
## result.2 "Black"   
## result.3 "Asian"   
## result.4 "Hispanic"
buffalo_race <- foreach(i=1:4, .combine = "rbind") %do% {
  cropped_data %>% 
    filter(variable == race[i]) %>% 
    st_sample(size = .$value) %>% 
    st_as_sf() %>% 
    mutate(variable = race[i])
}

mapview(buffalo_race, 
        cex = 1, 
        alpha = 0)